<template>
	<s-layout title="我的" tabbar="/pages/index/user" navbar="custom" :bgStyle="template.style?.background"
		:navbarStyle="template.style?.navbar" onShareAppMessage :showFloatButton="true">
		<s-block v-for="(item, index) in template.data" :key="index" :styles="item.style">
			<s-block-item :type="item.type" :data="item.data" :styles="item.style" />
		</s-block>

	</s-layout>
</template>

<script setup>
	import {
		computed,
		reactive
	} from 'vue';
	import {
		onShow,
		onPageScroll,
		onPullDownRefresh
	} from '@dcloudio/uni-app';
	import sheep from '@/sheep';

	// 隐藏原生tabBar
	uni.hideTabBar({
		fail: () => {},
	});
	const template = computed(() => sheep.$store('app').template.user);
	const isLogin = computed(() => sheep.$store('user').isLogin);
	const userInfo = computed(() => sheep.$store('user').userInfo);


	onShow(() => {

		// 输出 userInfo 到控制台
		// console.log('userInfo:', userInfo.value.parent_user_id);
		// showDialog();
		// 判断 parent_user_id 是否大于 0
		if (userInfo.value.parent_user_id === 0) {
			showDialog();
		} else {
			console.log('parent_user_id 大于 0，不展示弹窗');
		}

		// const userInfo = await sheep.$store('user').getInfo();
		// getUserInfo();
	});
	onPullDownRefresh(() => {
		sheep.$store('user').updateUserData();
		setTimeout(function() {
			uni.stopPullDownRefresh();
		}, 800);
	});

	// 展示弹窗
	const showDialog = () => {
		uni.showModal({
			title: '添加推荐人',
			content: '',
			editable: true, // 仅 H5 端支持
			placeholderText: '请输入推荐人编号',
			success: async (res) => {
				if (res.confirm) {
					// 用户点击了确定
					const referrerId = res.content; // 获取用户输入的推荐人 ID
					console.log('用户输入的推荐人 ID:', referrerId);
					console.log('用户输人 ID:', userInfo.value.id);
					if(referrerId == userInfo.value.id){
						uni.showToast({
							title: '不能绑定自己',
							icon: 'error',
						});
					}else{
						// 调用接口更新推荐人 ID
						try {
							const result = await updateReferrerId(referrerId);
							if (result.code === 1) {
								uni.showToast({
									title: '推荐人 ID 更新成功',
									icon: 'success',
								});
								// 1. 修改本地 userInfo 中的 parent_user_id
								userInfo.value.parent_user_id = referrerId;
						
								// 2. 更新本地存储中的 user-store
								updateLocalStorageUserInfo();
							} else {
								uni.showToast({
									title: result.msg || '更新失败',
									icon: 'none',
								});
							}
						} catch (error) {
							console.error('更新推荐人 ID 失败:', error);
							uni.showToast({
								title: '更新失败，请稍后重试',
								icon: 'none',
							});
						}
					}

					
				} else if (res.cancel) {
					console.log('用户点击了取消');
				}
			}
		});
	};
	
	// 更新本地存储中的 user-store
	const updateLocalStorageUserInfo = () => {
	  let userStore = uni.getStorageSync('user-store');
	
	  if (typeof userStore === 'string') {
	    userStore = JSON.parse(userStore);
	  }
	  userStore.userInfo = userInfo.value;
	
	  uni.setStorageSync('user-store', JSON.stringify(userStore));
	};

	// 更新推荐人 ID 的接口
	const updateReferrerId = async (referrerId) => {
		const res = await sheep.$api.user.updateReferrer({
			referrer_id: referrerId,
		});
		return res;
	};
	onPageScroll(() => {});
</script>

<style></style>